package com.module.file.service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.module.file.param.MultipartFileParam;

/**
 * 存储操作的service
 * Created by 超文 on 2017/5/2.
 */
public interface StorageService {

    /**
     * 删除全部数据
     */
    void deleteAll();

    /**
     * 初始化方法
     */
    void init();

    /**
     * 上传文件方法1
     *
     * @param param
     * @throws IOException
     */
    void uploadFileRandomAccessFile(MultipartFileParam param) throws IOException;

    /**
     * 上传文件方法2
     * 处理文件分块，基于MappedByteBuffer来实现文件的保存
     *
     * @param param
     * @throws IOException
     */
    void uploadFileByMappedByteBuffer(MultipartFileParam param) throws IOException;
    
    /**
     * 下载文件方法
     * @author chenluqiang
     * @date 2019年3月14日 上午11:07:13 
     * @param response
     * @param fileName
     * @return 
     * @throws IOException 
     */
	HttpServletResponse downloadFileByMappedByteBuffer(HttpServletResponse response, String fileName) throws IOException;
	/**
	 * 获取文件列表
	 * @author chenluqiang
	 * @date 2019年3月14日 下午2:52:19
	 */
	List<Map<String,Object>> listFile();

}
